oracle

推荐列表 站点导航

当前位置:首页 > 数据库 > oracle >

Oracle 游标使用总结

来源:网络整理  作者:网络  发布时间:2020-12-12 21:11
游标(CURSOR)也叫光标,在关系数据库中经常使用,在PL/SQL程序中可以用CURSOR与SELECT一起对表或者视图中的数据进行...
open cur_stu;
dbms_output.PUT_LINE(v_stuno||'->'||v_stuname);
1.使用步骤
--隐式游标使用
--定义变量,存放游标取出的数据
Oracle游标分为显示游标和隐式游标。
--循环做隐含检查 %notfound
一.显示游标
open cur_stu;
select stuno,stuname from student order by stuno;
BEGIN
--2.打开游标cur_stu
显示游标(Explicit Cursor):在PL/SQL程序中定义的、用于查询的游标称作显示游标。
create or replace
首先创建测试用表STUDENT,脚本如下:
--1.定义游标,名称为cur_stu
END PROC_STU1;
"STUNO" VARCHAR2(4 BYTE),
--显示游标使用,使用for循环
create or replace PROCEDURE PROC_STU1 AS
end if;
cursor cur_stu is
--显示游标使用,使用exit when循环
begin
v_stuno varchar(4);
上面例子中就是通过SQL%NOTFOUND游标属性判断UPDATE语句的执行结果决定是否需要插入新记录。 --打印结果
cursor cur_stu is
--如果更新没有匹配则插入一条新记录
end loop;
--定义变量,存放游标取出的数据
--继续将游标所指的当前行取出放到变量中
--继续将游标所指的当前行取出放到变量中
begin
(2).使用IF..ELSE代替WHILE循环处理游标
end;
close cur_stu; --4.关闭游标
--3.将游标的当前行取出存放到变量中
二.隐式游标
(1).使用WHILE循环处理游标
for stu in cur_stu
所有的SQL语句在上下文区内部都是可执行的,因为都有一个游标指向上下文区,此游标就是
end loop;
cursor cur_stu is
declare
--打印结果
END PROC_STU1_1;
fetch cur_stu into v_stuno,v_stuname;
--自动关闭游标
loop
BEGIN
end loop;
exit;
else
dbms_output.PUT_LINE(v_stuno||'->'||v_stuname);
if cur_stu%found then --如果游标cur_stu所指还有数据行
--2.打开游标cur_stu
begin
PROCEDURE PROC_STU1_1 AS
SQL游标,与现实游标不同的是,SQL游标在PL/SQL中不需要打开和关闭,而是在执行UPDATE、
cursor cur_stu is
2.使用演示
--1.定义游标,名称为cur_stu
DELETE是自动打开和关闭。
loop
v_stuname varchar(20);
select stuno,stuname from student order by stuno;
declare
close cur_stu; --4.关闭游标
v_stuname varchar(20);
"GENDER" VARCHAR2(2 CHAR)
end;
--显示游标使用,使用if判断
fetch cur_stu into v_stuno,v_stuname;
loop
values('1104','张燕广',18,'男');
open cur_stu;
select stuno,stuname from student order by stuno;
dbms_output.PUT_LINE(stu.stuno||'->'||stu.stuname);
"AGE" NUMBER,
exit when cur_stu%notfound; --游标所指还有数据行,则继续循环
v_stuno varchar(4);

--定义变量,存放游标取出的数据
--2.打开游标cur_stu
)
fetch cur_stu into v_stuno,v_stuname;
end;
declare
begin
(4).常用的使用EXIT WHEN处理游标
create or replace PROCEDURE PROC_STU4 AS
fetch cur_stu into v_stuno,v_stuname;
--3.将游标的当前行取出存放到变量中
v_stuname varchar(20);

复制代码 代码如下:

--显示游标使用,使用while循环
BEGIN
1.使用演示
close cur_stu; --4.关闭游标
select stuno,stuname from student order by stuno;
update student set stuname='张燕广' where stuno='1104';
fetch cur_stu into v_stuno,v_stuname;
end if;
END PROC_STU4;
while cur_stu%found --游标所指还有数据行,则继续循环
v_stuno varchar(4);
dbms_output.PUT_LINE(v_stuno||'->'||v_stuname);
--1.定义游标,名称为cur_stu


end loop;
--3.将游标的当前行取出存放到变量中
if SQL%NOTFOUND then
隐式游标(Implicit Cursor):是指非PL/SQL程序中定义的、而且是在PL/SQL中使用UPDATE/DELETE语句时,Oracle系统自动分配的游标。
END PROC_STU2;
(3).使用FOR循环处理游标
"STUNAME" VARCHAR2(10 BYTE),
end;
(1)定义 (2)打开 (3)使用 (4)关闭
BEGIN
declare
--定义游标,名称为cur_stu
--打印结果
create or replace PROCEDURE PROC_STU3 AS
2.说明
create or replace PROCEDURE PROC_STU2 AS
insert into student(STUNO,STUNAME,AGE,GENDER)

END PROC_STU3;
BEGIN
loop
CREATE TABLE "STUDENT" (

相关热词: oracle

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://v30.fanwenzhu.com/sql/oracle/3066.shtml

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

Oracle 游标使用总结

2020-12-12 编辑:网络

open cur_stu;
dbms_output.PUT_LINE(v_stuno||'->'||v_stuname);
1.使用步骤
--隐式游标使用
--定义变量,存放游标取出的数据
Oracle游标分为显示游标和隐式游标。
--循环做隐含检查 %notfound
一.显示游标
open cur_stu;
select stuno,stuname from student order by stuno;
BEGIN
--2.打开游标cur_stu
显示游标(Explicit Cursor):在PL/SQL程序中定义的、用于查询的游标称作显示游标。
create or replace
首先创建测试用表STUDENT,脚本如下:
--1.定义游标,名称为cur_stu
END PROC_STU1;
"STUNO" VARCHAR2(4 BYTE),
--显示游标使用,使用for循环
create or replace PROCEDURE PROC_STU1 AS
end if;
cursor cur_stu is
--显示游标使用,使用exit when循环
begin
v_stuno varchar(4);
上面例子中就是通过SQL%NOTFOUND游标属性判断UPDATE语句的执行结果决定是否需要插入新记录。 --打印结果
cursor cur_stu is
--如果更新没有匹配则插入一条新记录
end loop;
--定义变量,存放游标取出的数据
--继续将游标所指的当前行取出放到变量中
--继续将游标所指的当前行取出放到变量中
begin
(2).使用IF..ELSE代替WHILE循环处理游标
end;
close cur_stu; --4.关闭游标
--3.将游标的当前行取出存放到变量中
二.隐式游标
(1).使用WHILE循环处理游标
for stu in cur_stu
所有的SQL语句在上下文区内部都是可执行的,因为都有一个游标指向上下文区,此游标就是
end loop;
cursor cur_stu is
declare
--打印结果
END PROC_STU1_1;
fetch cur_stu into v_stuno,v_stuname;
--自动关闭游标
loop
BEGIN
end loop;
exit;
else
dbms_output.PUT_LINE(v_stuno||'->'||v_stuname);
if cur_stu%found then --如果游标cur_stu所指还有数据行
--2.打开游标cur_stu
begin
PROCEDURE PROC_STU1_1 AS
SQL游标,与现实游标不同的是,SQL游标在PL/SQL中不需要打开和关闭,而是在执行UPDATE、
cursor cur_stu is
2.使用演示
--1.定义游标,名称为cur_stu
DELETE是自动打开和关闭。
loop
v_stuname varchar(20);
select stuno,stuname from student order by stuno;
declare
close cur_stu; --4.关闭游标
v_stuname varchar(20);
"GENDER" VARCHAR2(2 CHAR)
end;
--显示游标使用,使用if判断
fetch cur_stu into v_stuno,v_stuname;
loop
values('1104','张燕广',18,'男');
open cur_stu;
select stuno,stuname from student order by stuno;
dbms_output.PUT_LINE(stu.stuno||'->'||stu.stuname);
"AGE" NUMBER,
exit when cur_stu%notfound; --游标所指还有数据行,则继续循环
v_stuno varchar(4);

--定义变量,存放游标取出的数据
--2.打开游标cur_stu
)
fetch cur_stu into v_stuno,v_stuname;
end;
declare
begin
(4).常用的使用EXIT WHEN处理游标
create or replace PROCEDURE PROC_STU4 AS
fetch cur_stu into v_stuno,v_stuname;
--3.将游标的当前行取出存放到变量中
v_stuname varchar(20);

复制代码 代码如下:

--显示游标使用,使用while循环
BEGIN
1.使用演示
close cur_stu; --4.关闭游标
select stuno,stuname from student order by stuno;
update student set stuname='张燕广' where stuno='1104';
fetch cur_stu into v_stuno,v_stuname;
end if;
END PROC_STU4;
while cur_stu%found --游标所指还有数据行,则继续循环
v_stuno varchar(4);
dbms_output.PUT_LINE(v_stuno||'->'||v_stuname);
--1.定义游标,名称为cur_stu


end loop;
--3.将游标的当前行取出存放到变量中
if SQL%NOTFOUND then
隐式游标(Implicit Cursor):是指非PL/SQL程序中定义的、而且是在PL/SQL中使用UPDATE/DELETE语句时,Oracle系统自动分配的游标。
END PROC_STU2;
(3).使用FOR循环处理游标
"STUNAME" VARCHAR2(10 BYTE),
end;
(1)定义 (2)打开 (3)使用 (4)关闭
BEGIN
declare
--定义游标,名称为cur_stu
--打印结果
create or replace PROCEDURE PROC_STU3 AS
2.说明
create or replace PROCEDURE PROC_STU2 AS
insert into student(STUNO,STUNAME,AGE,GENDER)

END PROC_STU3;
BEGIN
loop
CREATE TABLE "STUDENT" (

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://v30.fanwenzhu.com/sql/oracle/3066.shtml

相关文章

风云图片

推荐阅读

返回oracle频道首页